import sys
import json
from llama_index.llms.ollama import Ollama
from llama_index.core.retrievers import VectorIndexRetriever
from llama_index.core.query_engine import RetrieverQueryEngine
from llama_index.core.postprocessor import SimilarityPostprocessor
from llama_index.embeddings.fastembed import FastEmbedEmbedding
from llama_index.core import Settings
from llama_index.core.query_engine import NLSQLTableQueryEngine
import openai
import logging
from llama_index.llms.openai import OpenAI
from llama_index.core import VectorStoreIndex
from llama_index.vector_stores.chroma import ChromaVectorStore
import chromadb
import uuid
from bs4 import BeautifulSoup
from llama_index.core.tools import QueryEngineTool, ToolMetadata
from llama_index.core.callbacks import CallbackManager
from llama_index.core.agent import AgentRunner
from llama_index.agent.openai import OpenAIAgent
from llama_index.agent.openai import OpenAIAgentWorker
from llama_index.embeddings.ollama import OllamaEmbedding
'''
pip install beautifulsoup4
pip install chromadb
pip install llama-index
pip install llama-index-llms-ollama
pip install llama-index-embeddings-fastembed
pip install llama_index.vector_stores.chroma
pip install llama-index-llms-openai
'''


# from actions.api.mysql_tab import MysqlTab
logger = logging.getLogger(__name__)
#  codeqwen:7b-chat-v1.5-q8_0
llm = Ollama(model="codeqwen:7b-chat-v1.5-q8_0", base_url="http://localhost:9090",request_timeout=60000.0)
# self.embed_model = FastEmbedEmbedding(model_name="BAAI/bge-base-en-v1.5")   
from llama_index.llms.ollama import Ollama
pmt='''参考表结构system_prompt(id int,ty int,cnt text,del_flag:int)生成vue+elementUI页面代码。要求如下：
1：查询按钮。用户输入cnt查询，查询内容采用表格展示。
2：新增按钮。点击新增按钮弹出窗口，可以输入表单内容，再调用odata新增记录。
3：每条记录生成修改按钮。点击修改按钮，弹出修改窗口，点击确认后，调用odata接口根据id修改记录。
4：每条记录生成删除按钮。点击删除按钮，弹出确认按钮。确认删除后调用odata修改del_flag为1。
5：查询表格显示一条测试数据例子。
6：要求输出8000个字以上。
'''
resp = llm.complete(pmt)
with open('myfile.vue', 'w', encoding='utf-8') as f:
    f.write(text)
